package org.example.apply.utils;


import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.jwt.JWT;


public class MyJwtUtil {

/*    @Value("${jwt.key}")
    static String key;*/
public static String KEY="li";

    /**
     * 使用hutool重聚类生成token
     * @param obj
     * @return
     */
    public static String createToken(Object obj){
        String jsonStr = JSONUtil.toJsonStr(obj);
        String token = JWT.create()
                .setKey(KEY.getBytes())
                .setPayload("loginUser", jsonStr)
                .setExpiresAt(DateUtil.offsetDay(DateUtil.date(), 1))
                .sign();

        return token;
    }

    /**
     * 根据token 解析成登录的用户对象
     * @param token
     * @param clz
     * @param <T>
     * @return
     */
    public static <T> T pareseToken(String token,Class<T> clz) {
        String loginUserStr = JWT.of(token).setKey(KEY.getBytes()).getPayload("loginUser").toString();
        T t = JSONUtil.toBean(loginUserStr, clz);
        return t;
    }
}
